Загрузчик **LILO** (*анг.* *LI*nux *LO*ader) устаревший мульти-загрузчик для Linux-подобных систем. Не смотря на то, что он являлся стандартом в течение многих лет, постепенно его использование сошло на нет, благодаря появлению и развитию [GRUB](/index.php/GRUB "GRUB"), альтернативного загрузчика, предоставляющего более простую конфигурацию и снижающего вероятность получить незагружаемую систему. Однако, не смотря на это, многие пользователи до сих пор предпочитают простоту LILO и поэтому он до сих пор продолжает активно развиваться.

## Contents

*   [1 Установка](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0)
*   [2 Настройка](#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0)
*   [3 Пример настройки](#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8)
    *   [3.1 Установка фонового изображения](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D1.84.D0.BE.D0.BD.D0.BE.D0.B2.D0.BE.D0.B3.D0.BE_.D0.B8.D0.B7.D0.BE.D0.B1.D1.80.D0.B0.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F)
*   [4 Решение проблем](#.D0.A0.D0.B5.D1.88.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D1.80.D0.BE.D0.B1.D0.BB.D0.B5.D0.BC)
    *   [4.1 Ошибка чтения-записи во время загрузки (Read write error)](#.D0.9E.D1.88.D0.B8.D0.B1.D0.BA.D0.B0_.D1.87.D1.82.D0.B5.D0.BD.D0.B8.D1.8F-.D0.B7.D0.B0.D0.BF.D0.B8.D1.81.D0.B8_.D0.B2.D0.BE_.D0.B2.D1.80.D0.B5.D0.BC.D1.8F_.D0.B7.D0.B0.D0.B3.D1.80.D1.83.D0.B7.D0.BA.D0.B8_.28Read_write_error.29)
    *   [4.2 Не найден Devmapper после обновления ядра](#.D0.9D.D0.B5_.D0.BD.D0.B0.D0.B9.D0.B4.D0.B5.D0.BD_Devmapper_.D0.BF.D0.BE.D1.81.D0.BB.D0.B5_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.8F.D0.B4.D1.80.D0.B0)
*   [5 Смотрите также](#.D0.A1.D0.BC.D0.BE.D1.82.D1.80.D0.B8.D1.82.D0.B5_.D1.82.D0.B0.D0.BA.D0.B6.D0.B5)

## Установка

LILO доступен в AUR как [lilo](https://aur.archlinux.org/packages/lilo/) и в виде [lilo-git](https://aur.archlinux.org/packages/lilo-git/) (git-версия). Стоит отметить, что LILO работает только на BIOS-системах. Если Вам необходима поддержка UEFI, то тогда можно использовать пакет ELILO [elilo-efi](https://aur.archlinux.org/packages/elilo-efi/), который также доступен в AUR

Для установки LILO в MBR, запустите команду `lilo` (как root). **Внимание!** Перед тем, как запускать установку LILO, не забудьте отредактировать `/etc/lilo.conf`. Убедитесь, что в параметре *root=* правильно указан HDD с root-разделом. Например, если root'овый раздел находится на /dev/sda1, тогда в файле конфигурации LILO должно быть указано: `root=/dev/sda1`. Не забудьте сменить root-параметр для обеих записей 'arch' и 'arch-fallback'.

## Настройка

LILO можно конфигурировать путем редактирования файла `/etc/lilo.conf` и последующего запуска команды `lilo` для применения изменений.

Напоминаем, что *необходимо* запускать LILO после каждого обновления ядра, иначе можно получить незагружаемую систему при следующем включении компьютера.

Больше информации по настройке LILO можно найти на сайте [LILO-mini-HOWTO](http://www.tldp.org/HOWTO/LILO.html).

## Пример настройки

Типичная конфигурация LILO:

**Tip:** Если LILO как следует тормозит при загрузке bzImage, попробуйте добавить `compact` в файл `/etc/lilo.conf` в раздел перед указанием image, как показано в примере ниже.
 `/etc/lilo.conf` 
```
#
# /etc/lilo.conf
#

boot=/dev/hda
# This line often fixes L40 errors on bootup
# disk=/dev/hda bios=0x80

default=Arch
timeout=100
lba32
prompt
**compact**

image=/boot/vmlinuz-linux
        label=Arch
	append="devfs=nomount"
	vga=788
        root=/dev/hda2
        read-only

image=/boot/vmlinuz-linux
        label=ArchRescue
        root=/dev/hda8
        read-only

other=/dev/hda1
        label=Windows

# End of file
```

Для определения возможных VGA-режимов, запустите *hwinfo --framebuffer*.

### Установка фонового изображения

Изначально, подготовим фоновую картинку:

*   Откройте необходимый файл в GIMP'е.
*   Сожмите её до размеров 640x480.
*   Переведите изображение в индексированный режим (Image-->Mode-->indexed).
*   Выберите "Создать оптимальную палитру" (Create optimal palette) и установите 16-цветовой режим. Используйте наиболее подходящий для Вас метод сглаживания (dithering method).
*   Откройте диалог "Цветовая карта" (Индексированная палитра). Задумайтесь, какие цвета Вы будете использовать в дальнейшем для отображения пунктов, часов и т.д. В файле `lilo.conf` необходимо ссылаться на цвета по индексу.
*   Экспортируйте изображение в формате *.bmp в папку `/boot`. В диалоге экспорта установите параметр "Do not write color space information"

Теперь приступим к редактированию файла `lilo.conf`. Ниже перечислены некоторые параметры, которыми можно настроить графическое меню. За дополнительной информацией обращайтесь в `man lilo.conf`.

*   bitmap=<bitmap-file> Пропишите здесь имя файла, который Вы подготовили (см. выше).
*   bmp-colors=<fg>,<bg>,<sh>,<hfg>,<hbg>,<hsh>

Данный параметр задает цвета в меню. Каждый параметр влияет на свой объект: передний план (foreground), фон (background) и тени текста (shadow) соответственно. Остальные 3 параметра означают то же самое, но для выделенного текста. При перечислении не используйте пробелы. Значения параметров - индексы палитры, которые были определены на предыдущем шаге. Если Вы не выбрали цвет, то можно оставить пустое значение (но не забудьте запятую). По умолчанию, фон прозрачный, и тени отсутствуют.

*   bmp-table=<x>,<y>,<ncol>,<nrow>,<xsep>,<spill> В данном параметре указывается место, где будет расположено меню. X и Y - числовые координаты, также можно указывать единицу измерения (англ. p) для использования пиксельных координат.
*   bmp-timer=<x>,<y>,<fg>,<bg>,<sh> В данном параметре описывается местоположение и цвет таймера, который отсчитывает время до загрузки выбранного по умолчанию пункта. Как и в предыдущем случае, цвета - индексы палитры, X и Y - координаты.

Пример:

```
bitmap=/boot/arch-lilo.bmp
bmp-colors=1,0,8,3,8,1
bmp-table=250p,150p,1,18
bmp-timer=250p,350p,3,8,1

```

Сохраните файл `lilo.conf`, после чего запустите `lilo.conf` от root'а, перезагрузитесь и наслаждайтесь красотой!

## Решение проблем

### Ошибка чтения-записи во время загрузки (Read write error)

Эта проблема была вызвана недавним [изменением](https://projects.archlinux.org/mkinitcpio.git/commit/?id=449b3e543c) в mkinitcpio, на что ответили [Systemd](/index.php/Systemd "Systemd") [исправлением.](http://cgit.freedesktop.org/systemd/systemd/commit/?id=956eaf2b8d6c999) Причина - двойная проверка fsck'ом разделов при монтировании в режиме "только чтение" (read only). Для исправления ошибки отредактируйте `/etc/lilo.conf` и замените 'read only' на 'read write' для обеих arch-записей.

Дополнительно - смотрите [this forum thread](https://bbs.archlinux.org/viewtopic.php?pid=1303683#p1303683).

### Не найден Devmapper после обновления ядра

Вполне возможно, что после обновления ядра проявится данная ошибка. Для решения, после обновления ядра запустите `modprobe dm-mod`, и далее, как обычно, `lilo`.

## Смотрите также

*   [Список параметров ядра, используемые во время загрузки](http://www.mjmwired.net/kernel/Documentation/kernel-parameters.txt)
*   [Список параметров ядра с подробным объяснением и группировкой по опциям ('Консольные загрузочные команды ядра', *Linux-ядро в двух словах*)](http://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_pdf/ch09.pdf))